package com.day11moring.java;
//定义用户类：
//- 属性：用户类型，用户id
//- 提供基本的构造方法和get方法，set方
public class User {
    private String type;
    private int id;

    public User(String type, int id) {
        this.type = type;
        this.id = id;
    }

    public String getType() {
            return type;

    }

    public int getId() {
        return id;
    }

    public void setType(String type) {
        this.type = type;
    }

    public void setId(int id) {
        this.id = id;
    }
}
//定义接口Filter：
//- 提供抽象方法filterUser（User u)
interface Filter{
     void filterUser(User u);
}

//定义实现类V1Filter，实现抽象方法，将用户设置为v1
class V1Filter implements Filter{
    @Override
    public void filterUser(User u) {
        u.setType("v1");
    }
}
//定义实现类V2Filter，实现抽象方法，将用户设置为v2
class V2Filter implements Filter{
    @Override
    public void filterUser(User u) {
        u.setType("v2");
    }
}
//定义实现类AFilter，实现抽象方法，将用户设置为A
class AFilter implements Filter{
    @Override
    public void filterUser(User u) {
        u.setType("A");
    }
}
//定义接待员类Receptionist：
//- 属性：接口Filter
//- 提供基本的构造方法和get方法，set方法
//- 成员方法：接待用户方法，设置用户类型。
class Receptionist{
    private Filter filter;
        void Receptionist(Filter filter){
        }

    public Filter getFilter() {
        return filter;
    }

    public void setFilter(Filter filter) {
        this.filter = filter;
    }

    public void recept(User u){
          if(u.getType()!=null){
              return;
          }
          filter.filterUser(u);
    }
}
